A Uniform Approach for Compile-Time and Run-Time Specialization

نویسندگان

  • Charles Consel
  • Luke Hornof
  • François Noël
  • Jacques Noyé
  • Nicolae Volansche
چکیده

As partial evaluation gets more mature it is now possible to use this program transformation technique to tackle realistic languages and real size application programs However this evolution raises a num ber of critical issues that need to be addressed before the approach be comes truly practical First of all most existing partial evaluators have been developed based on the assumption that they could process any kind of application pro gram This attempt to develop universal partial evaluators does not ad dress some critical needs of real size application programs Furthermore as partial evaluators treat richer and richer languages their size and com plexity increase drastically This increasing complexity revealed the need to enhance design principles Finally exclusively specializing programs at compile time seriously limits the applicability of partial evaluation since a large class of invariants in real size programs are not known until run time and therefore cannot be taken into account In this paper we propose design principles and techniques to deal with each of these issues By de ning an architecture for a partial evaluator and its essential com ponents we are able to tackle a rich language like C without compro mising the design and the structure of the resulting implementation By designing a partial evaluator targeted towards a speci c application area namely system software we have developed a system capable of treating realistic programs Because our approach to designing a partial evaluator clearly separates preprocessing and processing aspects we are able to introduce run time specialization in our partial evaluation system as a new way of exploiting information produced by the preprocessing phase

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A General Approach for Run - Time Specializationand its Application

Specializing programs with respect to run-time invariants is an optimization technique that has shown to improve the performance of programs substantially. It allows a program to adapt to execution contexts that are valid for a limited time. Run-time specialization is being actively investigated in a variety of areas. For example, recently, major operating system research projects have been foc...

متن کامل

Interpreting Specialization in Type Theory

We de ne the static semantics of o ine partial evaluation for the simply-typed lambda calculus using a translation into a Martin-Lof-style type theory with suitable extensions. Our approach clari es that the distinction between specialization-time and run-time computation in partial evaluation can model the phase distinction between compile-time and run-time computation in a module language. W...

متن کامل

Deferred Compilation: The Automation of Run-Time Code Generation

This paper describes deferred compilation, an alternative and complement to compile-time program analysis and optimization. By deferring aspects of compilation to run time, exact information about programs can be exploited, leading to greater opportunities for code improvement. This is in contrast to the use of static analyses, which are inherently conservative. Deferred compilation automates t...

متن کامل

Run-Time Program Specialization in Java Bytecode

Run-time specialization (RTS) is a technique that efficiently generates specialized programs with respect to runtime values. For efficiently generating specialized programs, RTS constructs compiled native code fragments called templates at compile-time, and generates a specialized program by merely copying the templates. The generated programs are, on the other hand, less efficient, since the t...

متن کامل

Static and Dynamic Program Compilation by Interpreter Specialization

Interpretation and run time compilation techniques are increasingly important because they can support heterogeneous architectures evolving programming languages and dynamically loaded code Interpretation is simple to implement but yields poor performance Run time compilation yields better performance but is costly to implement One way to preserve simplicity but obtain good performance is to ap...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996